package cl.duocap.refaxion.view.bean;

import java.io.Serializable;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import cl.duocap.refaxion.dto.ServicioDTO;
import cl.duocap.refaxion.servicios.ServicioService;

@ManagedBean(name = "mainServicioBean")
@SessionScoped
public class MainServicioBean implements Serializable{
	
	private static final long serialVersionUID = 1L;
	private ServicioDTO servicioDto;
	private List<ServicioDTO> listaServicio;
	private ServicioDTO servicioPorEliminar;
	

	@PostConstruct
	public void iniciar(){
		if(FacesContext.getCurrentInstance().isPostback()){
			return;
		}

	}
	
	public ServicioDTO getServicioDto() {
		return servicioDto;
	}
	public void setServicioDto(ServicioDTO servicioDto) {
		this.servicioDto = servicioDto;
	}
	public List<ServicioDTO> getListaServicio() {
		return listaServicio;
	}
	public void setListaServicio(List<ServicioDTO> listaServicio) {
		this.listaServicio = listaServicio;
	}
	public ServicioDTO getServicioPorEliminar() {
		return servicioPorEliminar;
	}
	public void setServicioPorEliminar(ServicioDTO servicioPorEliminar) {
		this.servicioPorEliminar = servicioPorEliminar;
	}
	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public MainServicioBean(ServicioDTO servicioDto,
			List<ServicioDTO> listaServicio, ServicioDTO servicioPorEliminar) {
		super();
		this.servicioDto = servicioDto;
		this.listaServicio = listaServicio;
		this.servicioPorEliminar = servicioPorEliminar;
	}
	public MainServicioBean() {
		super();
	}
	
	public String listarServicios(){
				
		try {		
			ServicioService servicio = new ServicioService();
			setListaServicio(servicio.obtenerServicios());
			return "mainServicio.xhtml?faces-redirect=true";
			
		} catch (Exception e) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage()));
			System.out.println("errorLista Servicio");
			return null;
		}	
	}
	
	public String listenerVerServicio(String idServicioVer){

		String url = "/mantenedor/servicio/formServicioVer?faces-redirect=true&idServicio=" + idServicioVer;			
		return url;
	}
	
	public void listanerEliminarServicio(ServicioDTO servicioEliminar){

		setServicioPorEliminar(servicioEliminar);
		
	}
	
	public String confirmareliminarServicio(){

		try {

			ServicioService servicio = new ServicioService();
			if(!servicio.eliminarServicio(servicioPorEliminar.getIdServicio())){
				return "mainServicio?faces-redirect=true";
			}else{
				return "mainServicio?faces-redirect=true";
			}
			
		} catch (Exception e) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage()));
			System.out.println("errorLista Usuarios");
			return "error";
		}	
			
	}
	public String listenerEditarServicio(String idServicioEditar){

		String url = "/mantenedor/servicio/formServicioEditar?faces-redirect=true&idServicio=" + idServicioEditar;			
		return url;
	}
	

}
